import re
from redisData.rServer import RS


# 验证key是否合法
def is_valid_redis_key(key):
    """
    验证key是否合法\n
    :param key: cmd的键
    :return: True/False
    """
    # 验证键是否为空
    if not key:
        return False

    # 验证键是否包含特殊字符
    if not re.match(r'^[a-zA-Z0-9_:.-]+$', key):
        return False

    # 验证键是否合法长度
    if len(key) > 255:
        return False

    return True


def get_all_keys(rClient):
    """获取rClient现在使用的数据库中的所有的键与类型\n
    :param rClient: 当前的客户端实例
    :return: {'key1': 'type1','key2': 'type2', ....}
    """
    return RS.rDB[rClient.redisDbId].get_keys()

